home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / µSim 1.1 / source / USAC.r < prev    next >
Encoding:
Text File  |  1997-06-13  |  62.5 KB  |  2,291 lines  |  [TEXT/CWIE]

  1. /*
  2. Copyright © 1993-1997 by Fabrizio Oddone
  3. ••• ••• ••• ••• ••• ••• ••• ••• ••• •••
  4. This source code is distributed as freeware: you can copy, exchange, modify this
  5. code as you wish. You may include this code in any kind of application: freeware,
  6. shareware, or commercial, provided that full credits are given.
  7. You may not sell or distribute this code for profit.
  8. */
  9.  
  10. #include    "FabLibResIDs.h"
  11. #include    "SimResIDs.h"
  12.  
  13. #define NumTextLines        6
  14.  
  15. #define LongestButtonName    56    // Continue
  16.  
  17. resource 'ALRT' (kALRT_PREFSWARNING, purgeable) {
  18.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  19.     kALRT_PREFSWARNING,
  20.     {    /* array: 4 elements */
  21.         /* [1] */
  22.         Cancel, visible, silent,
  23.         /* [2] */
  24.         Cancel, visible, silent,
  25.         /* [3] */
  26.         Cancel, visible, silent,
  27.         /* [4] */
  28.         Cancel, visible, silent
  29.     },
  30.     alertPositionMainScreen
  31. };
  32.  
  33. resource 'DITL' (kALRT_PREFSWARNING, purgeable) {
  34.     {    /* array DITLarray: 3 elements */
  35.         /* [1] */
  36.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  37.         Button {
  38.             enabled,
  39.             "Continue"
  40.         },
  41.         /* [2] */
  42.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  43.         Button {
  44.             enabled,
  45.             "Quit"
  46.         },
  47.         /* [3] */
  48.         {TextTop, TextLeft, TextBottom, TextRight},
  49.         StaticText {
  50.             disabled,
  51.             "You used a newer µSimulator on this Mac. "
  52.             "Since this version is probably outdated, you may want to look for "
  53.             "the newer one. "
  54.             "If you continue, you will lose some of the preferences you had set with "
  55.             "the newer µSimulator."
  56.         }
  57.     }
  58. };
  59. #define LongestButtonName    LongestBtnName    // restore
  60.  
  61. #define NumTextLines        3
  62.  
  63. resource 'ALRT' (kALRT_RESETMEM, purgeable, preload) {
  64.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  65.     kALRT_RESETMEM,
  66.     {    /* array: 4 elements */
  67.         /* [1] */
  68.         Cancel, visible, silent,
  69.         /* [2] */
  70.         Cancel, visible, silent,
  71.         /* [3] */
  72.         Cancel, visible, silent,
  73.         /* [4] */
  74.         Cancel, visible, silent
  75.     },
  76.     alertPositionMainScreen
  77. };
  78.  
  79. resource 'DITL' (kALRT_RESETMEM, purgeable, preload) {
  80.     {    /* array DITLarray: 3 elements */
  81.         /* [1] */
  82.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  83.         Button {
  84.             enabled,
  85.             "Reset"
  86.         },
  87.         /* [2] */
  88.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  89.         Button {
  90.             enabled,
  91.             "Cancel"
  92.         },
  93.         /* [3] */
  94.         {TextTop, TextLeft, TextBottom, TextRight},
  95.         StaticText {
  96.             disabled,
  97.             "Do you really want to reset the simulator main memory to its"
  98.             " initial state? This is NOT undoable."
  99.         }
  100.     }
  101. };
  102.  
  103. #define NumTextLines        4
  104. #define LongestButtonName    64    // Overwrite
  105.  
  106. resource 'ALRT' (kALRT_NOSAFESAVE, purgeable) {
  107.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  108.     kALRT_NOSAFESAVE,
  109.     {    /* array: 4 elements */
  110.         /* [1] */
  111.         Cancel, visible, sound1,
  112.         /* [2] */
  113.         Cancel, visible, sound1,
  114.         /* [3] */
  115.         Cancel, visible, sound1,
  116.         /* [4] */
  117.         Cancel, visible, sound1
  118.     },
  119.     alertPositionMainScreen
  120. };
  121.  
  122. resource 'DITL' (kALRT_NOSAFESAVE, purgeable) {
  123.     {    /* array DITLarray: 3 elements */
  124.         /* [1] */
  125.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  126.         Button {
  127.             enabled,
  128.             "Overwrite"
  129.         },
  130.         /* [2] */
  131.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  132.         Button {
  133.             enabled,
  134.             "Cancel"
  135.         },
  136.         /* [3] */
  137.         {TextTop, TextLeft, TextBottom, TextRight},
  138.         StaticText {
  139.             disabled,
  140.             "A safe save is not possible, because the available free space "
  141.             "is less than the size of this document. Shall I overwrite "
  142.             "the original document?"
  143.         }
  144.     }
  145. };
  146.  
  147. #define LongestButtonName    LongestBtnName    // restore
  148.  
  149. #define NumTextLines        4
  150.  
  151. resource 'ALRT' (kALRT_NOSAVE, purgeable) {
  152.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  153.     kALRT_NOSAVE,
  154.     beepStages,
  155.     alertPositionMainScreen
  156. };
  157.  
  158. resource 'DITL' (kALRT_NOSAVE, purgeable) {
  159.     {    /* array DITLarray: 2 elements */
  160.         /* [1] */
  161.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  162.         Button {
  163.             enabled,
  164.             "OK"
  165.         },
  166.         /* [2] */
  167.         {TextTop, TextLeft, TextBottom, TextRight},
  168.         StaticText {
  169.             disabled,
  170.             "Sorry, it is not possible to save onto this disk without "
  171.             "overwriting the original document (no more free space available). "
  172.             "To be safe, save onto another disk."
  173.         }
  174.     }
  175. };
  176.  
  177. #define NumTextLines        4
  178.  
  179. resource 'ALRT' (kALRT_RESETREGS, purgeable, preload) {
  180.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  181.     kALRT_RESETREGS,
  182.     {    /* array: 4 elements */
  183.         /* [1] */
  184.         Cancel, visible, silent,
  185.         /* [2] */
  186.         Cancel, visible, silent,
  187.         /* [3] */
  188.         Cancel, visible, silent,
  189.         /* [4] */
  190.         Cancel, visible, silent
  191.     },
  192.     alertPositionMainScreen
  193. };
  194.  
  195. resource 'DITL' (kALRT_RESETREGS, purgeable, preload) {
  196.     {    /* array DITLarray: 3 elements */
  197.         /* [1] */
  198.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  199.         Button {
  200.             enabled,
  201.             "Reset"
  202.         },
  203.         /* [2] */
  204.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  205.         Button {
  206.             enabled,
  207.             "Cancel"
  208.         },
  209.         /* [3] */
  210.         {TextTop, TextLeft, TextBottom, TextRight},
  211.         StaticText {
  212.             disabled,
  213.             "Do you really want to reset the Program Counter, the Stack "
  214.             "Pointer and the Micro Program Counter to their initial values? "
  215.             "This is NOT undoable."
  216.         }
  217.     }
  218. };
  219.  
  220. #define NumTextLines        2
  221.  
  222. resource 'ALRT' (kALRT_STKOVERFLOW, purgeable, preload) {
  223.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  224.     kALRT_STKOVERFLOW,
  225.     beepStages,
  226.     alertPositionMainScreen
  227. };
  228.  
  229. resource 'DITL' (kALRT_STKOVERFLOW, purgeable, preload) {
  230.     {    /* array DITLarray: 2 elements */
  231.         /* [1] */
  232.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  233.         Button {
  234.             enabled,
  235.             "OK"
  236.         },
  237.         /* [2] */
  238.         {TextTop, TextLeft, TextBottom, TextRight},
  239.         StaticText {
  240.             disabled,
  241.             "A stack overflow error occurred (in the simulated computer, "
  242.             "fortunately)."
  243.         }
  244.     }
  245. };
  246. /*
  247. #define NumTextLines        3
  248.  
  249. resource 'ALRT' (kALRT_MEMTOOFULL, purgeable) {
  250.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  251.     kALRT_MEMTOOFULL,
  252.     beepStages,
  253.     alertPositionMainScreen
  254. };
  255.  
  256. resource 'DITL' (kALRT_MEMTOOFULL, purgeable) {
  257.     {    
  258.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  259.         Button {
  260.             enabled,
  261.             "OK"
  262.         },
  263.         {TextTop, TextLeft, TextBottom, TextRight},
  264.         StaticText {
  265.             disabled,
  266.             "Sorry, memory is full. You will find some recovered documents"
  267.             " in the Trash after restarting your Mac."
  268.         }
  269.     }
  270. };
  271. */
  272. #define NumTextLines        3
  273.  
  274. resource 'ALRT' (kALRT_REVERT, purgeable) {
  275.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  276.     kALRT_REVERT,
  277.     {    /* array: 4 elements */
  278.         /* [1] */
  279.         Cancel, visible, silent,
  280.         /* [2] */
  281.         Cancel, visible, silent,
  282.         /* [3] */
  283.         Cancel, visible, silent,
  284.         /* [4] */
  285.         Cancel, visible, silent
  286.     },
  287.     alertPositionMainScreen
  288. };
  289.  
  290. resource 'DITL' (kALRT_REVERT, purgeable) {
  291.     {    /* array DITLarray: 3 elements */
  292.         /* [1] */
  293.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  294.         Button {
  295.             enabled,
  296.             "Revert"
  297.         },
  298.         /* [2] */
  299.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  300.         Button {
  301.             enabled,
  302.             "Cancel"
  303.         },
  304.         /* [3] */
  305.         {TextTop, TextLeft, TextBottom, TextRight},
  306.         StaticText {
  307.             disabled,
  308.             "Do you really want to revert to the last saved version of this"
  309.             " document? This is NOT undoable."
  310.         }
  311.     }
  312. };
  313.  
  314. #define NumTextLines        3
  315.  
  316. resource 'ALRT' (kALRT_CPURUNNING, purgeable) {
  317.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  318.     kALRT_CPURUNNING,
  319.     {    /* array: 4 elements */
  320.         /* [1] */
  321.         Cancel, visible, silent,
  322.         /* [2] */
  323.         Cancel, visible, silent,
  324.         /* [3] */
  325.         Cancel, visible, silent,
  326.         /* [4] */
  327.         Cancel, visible, silent
  328.     },
  329.     alertPositionMainScreen
  330. };
  331.  
  332. resource 'DITL' (kALRT_CPURUNNING, purgeable) {
  333.     {    /* array DITLarray: 3 elements */
  334.         /* [1] */
  335.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  336.         Button {
  337.             enabled,
  338.             "Quit"
  339.         },
  340.         /* [2] */
  341.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  342.         Button {
  343.             enabled,
  344.             "Cancel"
  345.         },
  346.         /* [3] */
  347.         {TextTop, TextLeft, TextBottom, TextRight},
  348.         StaticText {
  349.             disabled,
  350.             "A computation is running on the simulated processor. Do you "
  351.             "really want to quit now?"
  352.         }
  353.     }
  354. };
  355.  
  356. #define NumTextLines        2
  357.  
  358. resource 'ALRT' (kALRT_STKUNDERFLOW, purgeable, preload) {
  359.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  360.     kALRT_STKUNDERFLOW,
  361.     beepStages,
  362.     alertPositionMainScreen
  363. };
  364.  
  365. resource 'DITL' (kALRT_STKUNDERFLOW, purgeable, preload) {
  366.     {    /* array DITLarray: 2 elements */
  367.         /* [1] */
  368.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  369.         Button {
  370.             enabled,
  371.             "OK"
  372.         },
  373.         /* [2] */
  374.         {TextTop, TextLeft, TextBottom, TextRight},
  375.         StaticText {
  376.             disabled,
  377.             "A stack underflow error occurred (in the simulated computer,"
  378.             " fortunately)."
  379.         }
  380.     }
  381. };
  382.  
  383. #define NumTextLines        3
  384.  
  385. resource 'ALRT' (kALRT_INFLOOP, purgeable, preload) {
  386.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  387.     kALRT_INFLOOP,
  388.     beepStages,
  389.     alertPositionMainScreen
  390. };
  391.  
  392. resource 'DITL' (kALRT_INFLOOP, purgeable, preload) {
  393.     {    /* array DITLarray: 2 elements */
  394.         /* [1] */
  395.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  396.         Button {
  397.             enabled,
  398.             "OK"
  399.         },
  400.         /* [2] */
  401.         {TextTop, TextLeft, TextBottom, TextRight},
  402.         StaticText {
  403.             disabled,
  404.             "Timeout error. The simulated processor is abnormally busy, "
  405.             "possibly because of an infinite loop in the microprogram."
  406.         }
  407.     }
  408. };
  409.  
  410. #define NumTextLines        1
  411.  
  412. resource 'ALRT' (kALRT_TOSHELL, purgeable, preload) {
  413.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  414.     kALRT_TOSHELL,
  415.     silentStages,
  416.     alertPositionMainScreen
  417. };
  418.  
  419. resource 'DITL' (kALRT_TOSHELL, purgeable, preload) {
  420.     {    /* array DITLarray: 2 elements */
  421.         /* [1] */
  422.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  423.         Button {
  424.             enabled,
  425.             "OK"
  426.         },
  427.         /* [2] */
  428.         {TextTop, TextLeft, TextBottom, TextRight},
  429.         StaticText {
  430.             disabled,
  431.             "The simulated program has quitted."
  432.         }
  433.     }
  434. };
  435.  
  436. #define NumTextLines        2
  437.  
  438. resource 'ALRT' (kALRT_WRONGEXISTINGDOC, purgeable) {
  439.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  440.     kALRT_WRONGEXISTINGDOC,
  441.     silentStages,
  442.     alertPositionMainScreen
  443. };
  444.  
  445. resource 'DITL' (kALRT_WRONGEXISTINGDOC, purgeable) {
  446.     {    /* array DITLarray: 3 elements */
  447.         /* [1] */
  448.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  449.         Button {
  450.             enabled,
  451.             "OK"
  452.         },
  453.         /* [3] */
  454.         {TextTop, TextLeft, TextBottom, TextRight},
  455.         StaticText {
  456.             disabled,
  457.             "You can replace documents of the same kind only. "
  458.             "Please use another name."
  459.         }
  460.     }
  461. };
  462.  
  463. #define NumTextLines        3
  464.  
  465. resource 'ALRT' (kALRT_GZOUTOFMEM, purgeable) {
  466.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  467.     kALRT_GZOUTOFMEM,
  468.     beepStages,
  469.     alertPositionMainScreen
  470. };
  471.  
  472. resource 'DITL' (kALRT_GZOUTOFMEM, purgeable) {
  473.     {    /* array DITLarray: 2 elements */
  474.         /* [1] */
  475.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  476.         Button {
  477.             enabled,
  478.             "OK"
  479.         },
  480.         /* [2] */
  481.         {TextTop, TextLeft, TextBottom, TextRight},
  482.         StaticText {
  483.             disabled,
  484.             "Memory is getting dangerously low. "
  485.             "Save any unsaved work, then quit and increase the memory partition."
  486.         }
  487.     }
  488. };
  489.  
  490. #define NumTextLines        3
  491.  
  492. resource 'ALRT' (kALRT_SAVE, purgeable) {
  493.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  494.     kALRT_SAVE,
  495.     silentStages,
  496.     alertPositionMainScreen
  497. };
  498.  
  499. resource 'DITL' (kALRT_SAVE, purgeable) {
  500.     {    /* array DITLarray: 4 elements */
  501.         /* [1] */
  502.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  503.         Button {
  504.             enabled,
  505.             "Save"
  506.         },
  507.         /* [2] */
  508.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  509.         Button {
  510.             enabled,
  511.             "Cancel"
  512.         },
  513.         /* [3] */
  514.         {ButtonTop, DontSaveButtonLeft, ButtonBottom, DontSaveButtonRight},
  515.         Button {
  516.             enabled,
  517.             "Don’t Save"
  518.         },
  519.         /* [4] */
  520.         {TextTop, TextLeft, TextBottom, TextRight},
  521.         StaticText {
  522.             disabled,
  523.             "Save changes to the microprogram document “^0”?"
  524.         }
  525.     }
  526. };
  527.  
  528. #define NumTextLines        1
  529.  
  530. resource 'ALRT' (kALRT_INVALIDOPC, purgeable) {
  531.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  532.     kALRT_INVALIDOPC,
  533.     beepStages,
  534.     alertPositionMainScreen
  535. };
  536.  
  537. resource 'DITL' (kALRT_INVALIDOPC, purgeable) {
  538.     {    /* array DITLarray: 2 elements */
  539.         /* [1] */
  540.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  541.         Button {
  542.             enabled,
  543.             "OK"
  544.         },
  545.         /* [2] */
  546.         {TextTop, TextLeft, TextBottom, TextRight},
  547.         StaticText {
  548.             disabled,
  549.             "Invalid opcode at line ^0."
  550.         }
  551.     }
  552. };
  553.  
  554. #define NumTextLines        2
  555.  
  556. resource 'ALRT' (kALRT_OPCNOTEXIS, purgeable) {
  557.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  558.     kALRT_OPCNOTEXIS,
  559.     beepStages,
  560.     alertPositionMainScreen
  561. };
  562.  
  563. resource 'DITL' (kALRT_OPCNOTEXIS, purgeable) {
  564.     {    /* array DITLarray: 2 elements */
  565.         /* [1] */
  566.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  567.         Button {
  568.             enabled,
  569.             "OK"
  570.         },
  571.         /* [2] */
  572.         {TextTop, TextLeft, TextBottom, TextRight},
  573.         StaticText {
  574.             disabled,
  575.             "Opcode not present in the opcode table at line ^0."
  576.         }
  577.     }
  578. };
  579.  
  580. #define NumTextLines        4
  581.  
  582. resource 'ALRT' (kALRT_HEAPCHECK, purgeable) {
  583.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  584.     kALRT_HEAPCHECK,
  585.     beepStages,
  586.     alertPositionMainScreen
  587. };
  588.  
  589. resource 'DITL' (kALRT_HEAPCHECK, purgeable) {
  590.     {    /* array DITLarray: 2 elements */
  591.         /* [1] */
  592.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  593.         Button {
  594.             enabled,
  595.             "OK"
  596.         },
  597.         /* [2] */
  598.         {TextTop, TextLeft, TextBottom, TextRight},
  599.         StaticText {
  600.             disabled,
  601.             "You would assemble this program outside of the simulator memory. "
  602.             "Set the value in the Assembler Preferences dialog to a "
  603.             "more reasonable one."
  604.         }
  605.     }
  606. };
  607.  
  608. #define NumTextLines        2
  609.  
  610. resource 'ALRT' (kALRT_SYMNOTDEF, purgeable) {
  611.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  612.     kALRT_SYMNOTDEF,
  613.     beepStages,
  614.     alertPositionMainScreen
  615. };
  616.  
  617. resource 'DITL' (kALRT_SYMNOTDEF, purgeable) {
  618.     {    /* array DITLarray: 2 elements */
  619.         /* [1] */
  620.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  621.         Button {
  622.             enabled,
  623.             "OK"
  624.         },
  625.         /* [2] */
  626.         {TextTop, TextLeft, TextBottom, TextRight},
  627.         StaticText {
  628.             disabled,
  629.             "Symbol not defined at line ^0."
  630.         }
  631.     }
  632. };
  633.  
  634. #define NumTextLines        2
  635.  
  636. resource 'ALRT' (516, purgeable) {
  637.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  638.     516,
  639.     beepStages,
  640.     alertPositionMainScreen
  641. };
  642.  
  643. resource 'DITL' (516, purgeable) {
  644.     {    /* array DITLarray: 2 elements */
  645.         /* [1] */
  646.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  647.         Button {
  648.             enabled,
  649.             "OK"
  650.         },
  651.         /* [2] */
  652.         {TextTop, TextLeft, TextBottom, TextRight},
  653.         StaticText {
  654.             disabled,
  655.             "Operand not valid at line ^0. One or two letters are allowed between ' "
  656.             "'."
  657.         }
  658.     }
  659. };
  660.  
  661. resource 'DLOG' (256, purgeable, preload) {
  662.     {25, 10, 325, 500},
  663.     plainDBox,
  664.     invisible,
  665.     noGoAway,
  666.     0x0,
  667.     256,
  668.     "",
  669.     centerMainScreen
  670. };
  671.  
  672. resource 'DITL' (256, purgeable, preload) {
  673.     {    /* array DITLarray: 6 elements */
  674.         /* [1] */
  675.         {11, 5, 241, 224},
  676.         Picture {
  677.             disabled,
  678.             256
  679.         },
  680.         /* [2] */
  681.         {16, 230, 47, 373},
  682.         StaticText {
  683.             disabled,
  684.             "Version ^0 by Fabrizio Oddone"
  685.         },
  686.         /* [3] */
  687.         {55, 230, 136, 488},
  688.         StaticText {
  689.             disabled,
  690.             "Freeware! If you really like this application "
  691.             "or find it useful, send a postcard. "
  692.             "US dollars are welcome as always."
  693.         },
  694.         /* [4] */
  695.         {145, 230, 241, 488},
  696.         StaticText {
  697.             disabled,
  698.             "Fabrizio Oddone\nC.so Monte Cucco 59/F\n10141 Torino - Italy"
  699.         },
  700.         /* [5] */
  701.         {248, 8, 295, 483},
  702.         StaticText {
  703.             disabled,
  704.             "Many thanks to Alessandro Levi Montalcini and Alberto Ricci "
  705.             "for testing and giving lots of suggestions. (Alessandro "
  706.             "even lent me Inside Mac VI when it could not be found in"
  707.             " local bookstores)."
  708.         },
  709.         /* [6] */
  710.         {15, 440, 47, 472},
  711.         Icon {
  712.             disabled,
  713.             129
  714.         }
  715.     }
  716. };
  717.  
  718. #define NumTextLines        13
  719. #define AlertWidth            (512-10-10)    // placeholder
  720. #define LongestButtonName    45    // Credits
  721.  
  722. resource 'DLOG' (301, purgeable) {
  723.     {AlertTop, 10, AlertBottom, 512-10},
  724.     movableDBoxProc,
  725.     invisible,
  726.     noGoAway,
  727.     0x0,
  728.     301,
  729.     "About the MicroArchitecture Simulator…",
  730.     centerMainScreen
  731. };
  732.  
  733. resource 'DITL' (301, purgeable) {
  734.     {    /* array DITLarray: 6 elements */
  735.         /* [1] */
  736.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  737.         Button {
  738.             enabled,
  739.             "OK"
  740.         },
  741.         /* [2] */
  742.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  743.         Button {
  744.             enabled,
  745.             "Credits"
  746.         },
  747.         /* [3] */
  748.         {11, 1, 241, 220},
  749.         Picture {
  750.             disabled, 256
  751.         },
  752.         /* [4] */
  753.         {16, 216, 48, 448},
  754.         StaticText {
  755.             disabled,
  756.             "Version ^0\n©1993-1997 Fabrizio Oddone"
  757.         },
  758.         /* [5] */
  759.         {52, 216, 152, 490},
  760.         StaticText {
  761.             disabled,
  762.             "Freeware. If you really like this application "
  763.             "or find it useful, send a postcard. "
  764.             "US dollars are welcome as always."
  765.         },
  766.         /* [6] */
  767.         {153, 216, 153+64, 490},
  768.         StaticText {
  769.             disabled,
  770.             "Fabrizio Oddone\nC.so Monte Cucco 59/F\n10141 Torino - Italy"
  771.         },
  772.         /* [7] */
  773.         {0, 458, 32, 490},
  774.         Icon {
  775.             disabled,
  776.             129
  777.         }
  778.     }
  779. };
  780. #define LongestButtonName    LongestBtnName    // restore
  781.  
  782. #define NumTextLines        4
  783. #define AlertWidth            (512-10-10)    // placeholder
  784.  
  785. resource 'DLOG' (302, purgeable) {
  786.     {AlertTop, 10, AlertBottom, 512-10},
  787.     movableDBoxProc,
  788.     invisible,
  789.     noGoAway,
  790.     0x0,
  791.     302,
  792.     "Thanks to…",
  793.     centerMainScreen
  794. };
  795.  
  796. resource 'DITL' (302, purgeable) {
  797.     {    /* array DITLarray: 6 elements */
  798.         /* [1] */
  799.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  800.         Button {
  801.             enabled,
  802.             "OK"
  803.         },
  804.         /* [5] */
  805.         {10, 4, 10+(16*NumTextLines), 490},
  806.         StaticText {
  807.             disabled,
  808.             "My parents; Alessandro Levi Montalcini, Rocco Moliterno, Alberto Ricci, Paolo Sasso, and Peppino Ventura "
  809.             "for testing and giving lots of suggestions. (Alessandro "
  810.             "even lent me Inside Mac VI when it could not be found in"
  811.             " local bookstores)."
  812.         }
  813.     }
  814. };
  815. //#define AlertWidth            AlrtWidth    // placeholder
  816.  
  817. #define NumTextLines        4
  818. #define AlertWidth            (390-118)    // placeholder
  819.  
  820. resource 'DLOG' (kDLOG_EDITVALUE, purgeable, preload) {
  821.     {AlertTop, 118, AlertBottom, 390},
  822.     movableDBoxProc,
  823.     invisible,
  824.     noGoAway,
  825.     0x0,
  826.     kDLOG_EDITVALUE,
  827.     "Modify Element",
  828.     centerParentWindowScreen
  829. };
  830.  
  831. resource 'DITL' (kDLOG_EDITVALUE, purgeable, preload) {
  832.     {    /* array DITLarray: 6 elements */
  833.         /* [1] */
  834.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  835.         Button {
  836.             enabled,
  837.             "OK"
  838.         },
  839.         /* [2] */
  840.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  841.         Button {
  842.             enabled,
  843.             "Cancel"
  844.         },
  845.         /* [3] */
  846.         {59, 56, 75, 192},
  847.         EditText {
  848.             enabled,
  849.             ""
  850.         },
  851.         /* [4] */
  852.         {29, 53, 49, 220},
  853.         Control {
  854.             enabled,
  855.             128
  856.         },
  857.         /* [5] */
  858.         {5, 7, 21, 265},
  859.         StaticText {
  860.             disabled,
  861.             "Value ^0^1:"
  862.         },
  863.         /* [6] */
  864.         {0, 0, 0, 0},
  865.         HelpItem {
  866.             enabled,
  867.             HMScanhdlg {
  868.                 256
  869.             }
  870.         }
  871.     }
  872. };
  873. #define AlertWidth            AlrtWidth    // placeholder
  874.  
  875. #define NumTextLines        9
  876.  
  877. resource 'DLOG' (kDLOG_Prefs, purgeable) {
  878.     {AlertTop, AlertLeft, AlertBottom, AlertRight},
  879. /*    {70, 86, 310, 446},*/
  880.     movableDBoxProc,
  881.     invisible,
  882.     noGoAway,
  883.     0,
  884.     kDLOG_Prefs,
  885.     "Preferences",
  886.     centerParentWindowScreen
  887. };
  888.  
  889. #define    TopmostItemCoord    10
  890.  
  891. resource 'DITL' (kDLOG_Prefs, purgeable) {
  892.     {    /* array DITLarray: 12 elements */
  893.         /* [1] */
  894.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  895.         Button {
  896.             enabled,
  897.             "OK"
  898.         },
  899.         /* [2] */
  900.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  901.         Button {
  902.             enabled,
  903.             "Cancel"
  904.         },
  905.         /* [3] */
  906.         {TopmostItemCoord, 16, TopmostItemCoord+18, 226},
  907.         CheckBox {
  908.             enabled,
  909.             "Remember window positions "
  910.         },
  911.         /* [4] */
  912.         {TopmostItemCoord+18+2, 16, TopmostItemCoord+18+2+18, 209},
  913.         CheckBox {
  914.             enabled,
  915.             "Continuous Dump scrolling"
  916.         },
  917.         /* [5] */
  918.         {TopmostItemCoord+18+2+18+2, 16, TopmostItemCoord+18+2+18+2+18, 283},
  919.         CheckBox {
  920.             enabled,
  921.             "Detect infinite loops in microprogram"
  922.         },
  923.         /* [6] */
  924.         {TopmostItemCoord+18+2+18+2+18+10, ActionButtonRight-44, TopmostItemCoord+18+2+18+2+18+10+16, ActionButtonRight},
  925.         EditText {
  926.             enabled,
  927.             ""
  928.         },
  929.         /* [7] */
  930.         {TopmostItemCoord+18+2+18+2+18+10+16+10, ActionButtonRight-44, TopmostItemCoord+18+2+18+2+18+10+16+10+16, ActionButtonRight},
  931.         EditText {
  932.             enabled,
  933.             ""
  934.         },
  935.         /* [8] */
  936.         {TopmostItemCoord+18+2+18+2+18+10+16+10+16+10, ActionButtonRight-44, TopmostItemCoord+18+2+18+2+18+10+16+10+16+10+16, ActionButtonRight},
  937.         EditText {
  938.             enabled,
  939.             ""
  940.         },
  941.         /* [9] */
  942.         {TopmostItemCoord+18+2+18+2+18+10, 16, TopmostItemCoord+18+2+18+2+18+10+16, 264},
  943.         StaticText {
  944.             disabled,
  945.             "Initial Program Counter value (hex):"
  946.         },
  947.         /* [10] */
  948.         {TopmostItemCoord+18+2+18+2+18+10+16+10, 16, TopmostItemCoord+18+2+18+2+18+10+16+10+16, 242},
  949.         StaticText {
  950.             disabled,
  951.             "Initial Stack Pointer value (hex):"
  952.         },
  953.         /* [11] */
  954.         {TopmostItemCoord+18+2+18+2+18+10+16+10+16+10, 16, TopmostItemCoord+18+2+18+2+18+10+16+10+16+10+16, 224},
  955.         StaticText {
  956.             disabled,
  957.             "Stack size (number of words):"
  958.         },
  959.         /* [12] */
  960.         {0, 0, 0, 0},
  961.         HelpItem {
  962.             enabled,
  963.             HMScanhdlg {
  964.                 262
  965.             }
  966.         }
  967.     }
  968. };
  969.  
  970. #define NumTextLines        4
  971. #define AlertWidth            (430-100)    // placeholder
  972.  
  973. resource 'DLOG' (kDLOG_ASMPREFS, purgeable) {
  974.     {AlertTop, 100, AlertBottom, 430},
  975.     movableDBoxProc,
  976.     invisible,
  977.     noGoAway,
  978.     0x0,
  979.     kDLOG_ASMPREFS,
  980.     "Assembler Preferences",
  981.     centerMainScreen
  982. };
  983.  
  984. resource 'DITL' (kDLOG_ASMPREFS, purgeable) {
  985.     {    /* array DITLarray: 7 elements */
  986.         /* [1] */
  987.         {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
  988.         Button {
  989.             enabled,
  990.             "OK"
  991.         },
  992.         /* [2] */
  993.         {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
  994.         Button {
  995.             enabled,
  996.             "Cancel"
  997.         },
  998.         /* [3] */
  999.         {52, 263, 52+16, 310},
  1000.         EditText {
  1001.             enabled,
  1002.             ""
  1003.         },
  1004.         /* [5] */
  1005.         {52, 18, 52+16, 239},
  1006.         StaticText {
  1007.             disabled,
  1008.             "Assemble to memory word (hex):"
  1009.         },
  1010.         /* [6] */
  1011.         {10, 20, 42, 52},
  1012.         Icon {
  1013.             disabled,
  1014.             128
  1015.         },
  1016.         /* [7] */
  1017.         {0, 0, 0, 0},
  1018.         HelpItem {
  1019.             enabled,
  1020.             HMScanhdlg {
  1021.                 263
  1022.             }
  1023.         }
  1024.     }
  1025. };
  1026. #define AlertWidth            AlrtWidth    // placeholder
  1027.  
  1028.  
  1029. resource 'WIND' (kWIND_Microprogram_Ed, "Microprogram", purgeable, preload) {
  1030.     {39, 16, 315, 510},
  1031.     noGrowDocProc,
  1032.     invisible,
  1033.     goAway,
  1034.     0x100,
  1035.     "untitled",
  1036.     noAutoCenter
  1037. };
  1038.  
  1039. resource 'WIND' (kWIND_Animation, "Animation", purgeable, preload) {
  1040.     {75, 0, 342, 383},
  1041.     noGrowDocProc,
  1042.     invisible,
  1043.     goAway,
  1044.     0x0,
  1045.     "Animation",
  1046.     noAutoCenter
  1047. };
  1048.  
  1049. resource 'WIND' (kWIND_IO, "I/O", purgeable, preload) {
  1050.     {279, 0, 342, 381},
  1051.     zoomDocProc,
  1052.     invisible,
  1053.     goAway,
  1054.     0x0,
  1055.     "Input/Output",
  1056.     noAutoCenter
  1057. };
  1058.  
  1059. resource 'WIND' (kWIND_Registers, "Registers", purgeable, preload) {
  1060.     {36, 385, 216, 510},
  1061.     noGrowDocProc,
  1062.     invisible,
  1063.     goAway,
  1064.     0x0,
  1065.     "Registers",
  1066.     noAutoCenter
  1067. };
  1068.  
  1069. resource 'WIND' (kWIND_Dump, "Dump", purgeable, preload) {
  1070.     {50, 10, 164, 60},
  1071.     documentProc,
  1072.     invisible,
  1073.     goAway,
  1074.     0x0,
  1075.     "Dump",
  1076.     noAutoCenter
  1077. };
  1078.  
  1079. resource 'WIND' (kWIND_Disasm, "Disasm", purgeable, preload) {
  1080.     {42, 8, 334, 190},
  1081.     documentProc,
  1082.     invisible,
  1083.     goAway,
  1084.     0x0,
  1085.     "Disassembler",
  1086.     noAutoCenter
  1087. };
  1088.  
  1089.  
  1090. resource 'WIND' (kWIND_CurPos, purgeable, preload) {
  1091.     {40, 40, 56, 69},
  1092.     altDBoxProc,
  1093.     invisible,
  1094.     noGoAway,
  1095.     0x0,
  1096.     "",
  1097.     staggerParentWindow
  1098. };
  1099.  
  1100. resource 'kind' (128, purgeable)
  1101. {
  1102.     'µSIM',
  1103.     0,
  1104.     {
  1105.         'apnm',        "µSimulator",
  1106.         'µPRG',                    "µSimulator microprogram",
  1107.         'sPRG',                    "µSimulator stationery",
  1108.         'µRAM',                    "µSimulator main memory",
  1109.         'µREG',                    "µSimulator registers",
  1110.     }
  1111. };
  1112.  
  1113. resource 'STR#' (256, purgeable, preload) {
  1114.     {    /* array StringArray: 10 elements */
  1115.         /* [1] */
  1116.         "A Latch",
  1117.         /* [2] */
  1118.         "B Latch",
  1119.         /* [3] */
  1120.         "Memory Address Register",
  1121.         /* [4] */
  1122.         "Memory Buffer Register",
  1123.         /* [5] */
  1124.         "A Multiplexer",
  1125.         /* [6] */
  1126.         "Shifter",
  1127.         /* [7] */
  1128.         "Incrementer",
  1129.         /* [8] */
  1130.         "M Multiplexer",
  1131.         /* [9] */
  1132.         "Micro Program Counter",
  1133.         /* [10] */
  1134.         "Arithmetic Logical Unit"
  1135.     }
  1136. };
  1137.  
  1138. resource 'STR#' (257, purgeable, preload) {
  1139.     {    /* array StringArray: 13 elements */
  1140.         /* [1] */
  1141.         "PC",
  1142.         /* [2] */
  1143.         "AC",
  1144.         /* [3] */
  1145.         "SP",
  1146.         /* [4] */
  1147.         "BP",
  1148.         /* [5] */
  1149.         "IR",
  1150.         /* [6] */
  1151.         "A",
  1152.         /* [7] */
  1153.         "B",
  1154.         /* [8] */
  1155.         "C",
  1156.         /* [9] */
  1157.         "D",
  1158.         /* [10] */
  1159.         "E",
  1160.         /* [11] */
  1161.         "X12",
  1162.         /* [12] */
  1163.         "X11",
  1164.         /* [13] */
  1165.         "Lo8"
  1166.     }
  1167. };
  1168.  
  1169. resource 'STR#' (258, purgeable, preload) {
  1170.     {    /* array StringArray: 13 elements */
  1171.         /* [1] */
  1172.         "Program Counter",
  1173.         /* [2] */
  1174.         "Accumulator",
  1175.         /* [3] */
  1176.         "Stack Pointer",
  1177.         /* [4] */
  1178.         "Base Pointer",
  1179.         /* [5] */
  1180.         "Instruction Register",
  1181.         /* [6] */
  1182.         "Register A",
  1183.         /* [7] */
  1184.         "Register B",
  1185.         /* [8] */
  1186.         "Register C",
  1187.         /* [9] */
  1188.         "Register D",
  1189.         /* [10] */
  1190.         "Register E",
  1191.         /* [11] */
  1192.         "Register X12",
  1193.         /* [12] */
  1194.         "Register X11",
  1195.         /* [13] */
  1196.         "Register Lo8"
  1197.     }
  1198. };
  1199.  
  1200. resource 'STR#' (259, purgeable, preload) {
  1201.     {    /* array StringArray: 2 elements */
  1202.         /* [1] */
  1203.         "ALU input from:",
  1204.         /* [2] */
  1205.         "to"
  1206.     }
  1207. };
  1208.  
  1209. resource 'STR#' (128, purgeable) {
  1210.     {    /* array StringArray: 2 elements */
  1211.         /* [1] */
  1212.         "closing",
  1213.         /* [2] */
  1214.         "quitting"
  1215.     }
  1216. };
  1217.  
  1218. resource 'STR#' (130) {
  1219.     {    /* array StringArray: 2 elements */
  1220.         /* [1] */
  1221.         "in the ",
  1222.         /* [2] */
  1223.         "at memory word $"
  1224.     }
  1225. };
  1226.  
  1227. resource 'STR ' (128, purgeable) {
  1228.     "0123456789-"
  1229. };
  1230.  
  1231. resource 'STR ' (129, purgeable) {
  1232.     "0123456789ABCDEF"
  1233. };
  1234.  
  1235. resource 'STR ' (130, purgeable) {
  1236.     "01234567"
  1237. };
  1238.  
  1239. resource 'STR ' (131, purgeable) {
  1240.     "01"
  1241. };
  1242.  
  1243. resource 'STR ' (132, purgeable) {
  1244.     "    "
  1245. };
  1246.  
  1247. resource 'STR ' (kSTR_RAMPROMPT, purgeable) {
  1248.     "Save memory dump as:"
  1249. };
  1250.  
  1251. resource 'STR ' (kSTR_RAMDEFNAME, purgeable) {
  1252.     "Main memory"
  1253. };
  1254.  
  1255. resource 'STR ' (kSTR_ApplicationName, purgeable) {
  1256.     "µArchitecture Simulator"
  1257. };
  1258.  
  1259. resource 'STR ' (kSTR_NOOPENORPRINT, purgeable) {
  1260.     "This document describes user preferences for the application"
  1261.     " µArchitecture Simulator. You cannot open or print this docu"
  1262.     "ment. To be effective, this document must not be renamed and"
  1263.     " must be stored in the Preferences folder in the System Fold"
  1264.     "er."
  1265. };
  1266.  
  1267. resource 'STR ' (kSTR_CSPROMPT, purgeable) {
  1268.     "Save control store as:"
  1269. };
  1270.  
  1271. resource 'STR ' (kSTR_CSDEFNAME, purgeable) {
  1272.     "Control Store"
  1273. };
  1274.  
  1275. resource 'STR ' (kSTR_UNTITLED, purgeable) {
  1276.     "untitled"
  1277. };
  1278.  
  1279. resource 'STR ' (kSTR_REGSPROMPT, purgeable) {
  1280.     "Save processor state as:"
  1281. };
  1282.  
  1283. resource 'STR ' (kSTR_REGSDEFNAME, purgeable) {
  1284.     "Processor state"
  1285. };
  1286.  
  1287. resource 'CNTL' (128, purgeable, preload) {
  1288.     {29, 53, 49, 220},
  1289.     0,
  1290.     visible,
  1291.     42,
  1292.     128+128,
  1293.     1008,
  1294.     0,
  1295.     "Base:"
  1296. };
  1297.  
  1298. resource 'CNTL' (kCNTL_RegsBase, purgeable, preload) {
  1299.     {2, 1, 22, 110},
  1300.     0,
  1301.     visible,
  1302.     42,
  1303.     129+128,
  1304.     1008,
  1305.     0,
  1306.     "Base:"
  1307. };
  1308.  
  1309. resource 'CNTL' (130, purgeable, preload) {
  1310.     {4, 256, 24, 398},
  1311.     0,
  1312.     visible,
  1313.     42,
  1314.     133+128,
  1315.     1009,
  1316.     0,
  1317.     "A bus"
  1318. };
  1319.  
  1320. resource 'CNTL' (131, purgeable, preload) {
  1321.     {26, 256, 46, 398},
  1322.     0,
  1323.     visible,
  1324.     42,
  1325.     133+128,
  1326.     1009,
  1327.     0,
  1328.     "B bus"
  1329. };
  1330.  
  1331. resource 'CNTL' (132, purgeable, preload) {
  1332.     {48, 256, 68, 398},
  1333.     0,
  1334.     visible,
  1335.     42,
  1336.     134+128,
  1337.     1009,
  1338.     0,
  1339.     "C bus"
  1340. };
  1341.  
  1342. resource 'CNTL' (133, purgeable, preload) {
  1343.     {72, 256, 87, 444},
  1344.     0,
  1345.     visible,
  1346.     1,
  1347.     0,
  1348.     checkBoxProc,
  1349.     0,
  1350.     "Memory Address Register"
  1351. };
  1352.  
  1353. resource 'CNTL' (134, purgeable, preload) {
  1354.     {90, 256, 105, 436},
  1355.     0,
  1356.     visible,
  1357.     1,
  1358.     0,
  1359.     checkBoxProc,
  1360.     0,
  1361.     "Memory Buffer Register"
  1362. };
  1363.  
  1364. resource 'CNTL' (135, purgeable, preload) {
  1365.     {109, 256, 129, 486},
  1366.     0,
  1367.     visible,
  1368.     85,
  1369.     135+128,
  1370.     1009,
  1371.     0,
  1372.     "Bus request"
  1373. };
  1374.  
  1375. resource 'CNTL' (136, purgeable, preload) {
  1376.     {133, 288, 153, 486},
  1377.     0,
  1378.     visible,
  1379.     53,
  1380.     130+128,
  1381.     1009,
  1382.     0,
  1383.     "Shifter"
  1384. };
  1385.  
  1386. resource 'CNTL' (137, purgeable, preload) {
  1387.     {157, 289, 177, 426},
  1388.     0,
  1389.     visible,
  1390.     52,
  1391.     131+128,
  1392.     1009,
  1393.     0,
  1394.     "Branch"
  1395. };
  1396.  
  1397. resource 'CNTL' (138, purgeable, preload) {
  1398.     {181, 311, 201, 486},
  1399.     0,
  1400.     visible,
  1401.     30,
  1402.     132+128,
  1403.     1009,
  1404.     0,
  1405.     "ALU"
  1406. };
  1407.  
  1408. resource 'CNTL' (139, purgeable, preload) {
  1409.     {207, 374, 222, 433},
  1410.     0,
  1411.     visible,
  1412.     1,
  1413.     0,
  1414.     radioButProc,
  1415.     0,
  1416.     "A Bus"
  1417. };
  1418.  
  1419. resource 'CNTL' (140, purgeable, preload) {
  1420.     {207, 438, 222, 485},
  1421.     0,
  1422.     visible,
  1423.     1,
  1424.     0,
  1425.     radioButProc,
  1426.     0,
  1427.     "MBR"
  1428. };
  1429.  
  1430. resource 'CNTL' (141, purgeable, preload) {
  1431.     {227, 256, 242, 460},
  1432.     0,
  1433.     visible,
  1434.     1,
  1435.     0,
  1436.     checkBoxProc,
  1437.     0,
  1438.     "Activate hardware decoding"
  1439. };
  1440.  
  1441. resource 'CNTL' (kCNTL_IOVScroll, purgeable, preload) {
  1442.     {-1, 385, 236, 401},
  1443.     0,
  1444.     visible,
  1445.     0,
  1446.     0,
  1447.     scrollBarProc,
  1448.     0,
  1449.     ""
  1450. };
  1451.  
  1452. resource 'CNTL' (kCNTL_IOHScroll, purgeable, preload) {
  1453.     {235, -1, 251, 386},
  1454.     0,
  1455.     visible,
  1456.     0,
  1457.     0,
  1458.     scrollBarProc,
  1459.     0,
  1460.     ""
  1461. };
  1462.  
  1463. resource 'CNTL' (kCNTL_dmpVScroll, purgeable, preload) {
  1464.     {0, 385, 236, 401},
  1465.     0,
  1466.     visible,
  1467.     8192,
  1468.     0,
  1469.     scrollBarProc,
  1470.     0,
  1471.     ""
  1472. };
  1473.  
  1474. resource 'CNTL' (kCNTL_disasmVScroll, purgeable, preload) {
  1475.     {0, 385, 236, 401},
  1476.     0,
  1477.     visible,
  1478.     8192,
  1479.     0,
  1480.     scrollBarProc,
  1481.     0,
  1482.     ""
  1483. };
  1484.  
  1485. resource 'STR#' (1000, purgeable) {    /* Hier menus */
  1486.     {
  1487.         /* [1] Open…, Normal */
  1488.             "Opens a previously saved memory document, reading it into "
  1489.             "the main memory of the simulated computer.",
  1490.         /* [2] Save As…, Normal */
  1491.             "Saves the contents of the main memory of the simulated comp"
  1492.             "uter.",
  1493.         /* [3] Open…, Normal */
  1494.             "Opens a previously saved state document, loading it into "
  1495.             "the registers and internal parts of the simulated microprocessor.",
  1496.         /* [4] Save As…, Normal */
  1497.             "Saves the contents of the internal state of the simulated microprocessor.",
  1498.         /* [5] Disasm from, Missing */
  1499.             "Scrolls the Disassembler window in order to bring in view "
  1500.             "the memory location pointed to by this register.",
  1501.         /* [6] Disasm from, Missing */
  1502.             "Scrolls the Dump window in order to bring in view "
  1503.             "the memory location pointed to by this register.",
  1504.     }
  1505. };
  1506.  
  1507. resource 'STR#' (1001, purgeable) {    /* popup menus */
  1508.     {
  1509.         /* [1] Decimal, Normal */
  1510.             "Displays the number you are editing in decimal form.",
  1511.         /* [2] Decimal, Checked */
  1512.             "Displays the number you are editing in decimal form. Checke"
  1513.             "d because it is the active choice.",
  1514.         /* [3] Hexadecimal, Normal */
  1515.             "Displays the number you are editing in hexadecimal form.",
  1516.         /* [4] Hexadecimal, Checked */
  1517.             "Displays the number you are editing in hexadecimal form. Ch"
  1518.             "ecked because it is the active choice.",
  1519.         /* [5] Octal, Normal */
  1520.             "Displays the number you are editing in octal form.",
  1521.         /* [6] Octal, Checked */
  1522.             "Displays the number you are editing in octal form. Checked "
  1523.             "because it is the active choice.",
  1524.         /* [7] Binary, Normal */
  1525.             "Displays the number you are editing in binary form.",
  1526.         /* [8] Binary, Checked */
  1527.             "Displays the number you are editing in binary form. Checked"
  1528.             " because it is the active choice.",
  1529.         /* [9] as text, Normal */
  1530.             "Displays the number you are editing in textual form (ASCII decoding).",
  1531.         /* [10] as text, Checked */
  1532.             "Displays the number you are editing in textual form (ASCII decoding). Checked"
  1533.             " because it is the active choice.",
  1534.         /* [11] Dec, Normal */
  1535.             "Displays the registers in decimal form.",
  1536.         /* [12] Dec, Checked */
  1537.             "Displays the registers in decimal form. Checked because it "
  1538.             "is the active choice.",
  1539.         /* [13] Hex, Normal */
  1540.             "Displays the registers in hexadecimal form.",
  1541.         /* [14] Hex, Checked */
  1542.             "Displays the registers in hexadecimal form. Checked because"
  1543.             " it is the active choice.",
  1544.         /* [15] Oct, Normal */
  1545.             "Displays the registers in octal form.",
  1546.         /* [16] Oct, Checked */
  1547.             "Displays the registers in octal form. Checked because it is"
  1548.             " the active choice.",
  1549.         /* [17] Bin, Normal */
  1550.             "Displays the registers in binary form.",
  1551.         /* [18] Bin, Checked */
  1552.             "Displays the registers in binary form. Checked because it i"
  1553.             "s the active choice.",
  1554.         /* [19] as text, Normal */
  1555.             "Displays the registers in textual form (ASCII decoding).",
  1556.         /* [20] as text, Checked */
  1557.             "Displays the registers in textual form (ASCII decoding). Checked"
  1558.             " because it is the active choice.",
  1559.         /* [21] Inactive, Normal */
  1560.             "The shifter will be inactive while executing the curren"
  1561.             "tly selected microinstruction.",
  1562.         /* [22] Inactive, Checked */
  1563.             "The shifter will be inactive while executing the curren"
  1564.             "tly selected microinstruction. Checked because it is the act"
  1565.             "ive choice.",
  1566.         /* [23] Left, Normal */
  1567.             "The shifter will shift left while executing the current"
  1568.             "ly selected microinstruction.",
  1569.         /* [24] Left, Checked */
  1570.             "The shifter will shift left while executing the current"
  1571.             "ly selected microinstruction. Checked because it is the acti"
  1572.             "ve choice.",
  1573.         /* [25] Right Logical, Normal */
  1574.             "The shifter will shift right without extending the sign bit"
  1575.             " while executing the currently selected microinstruction"
  1576.             ".",
  1577.         /* [26] Right Logical, Checked */
  1578.             "The shifter will shift right without extending the sign bit"
  1579.             " while executing the currently selected microinstruction"
  1580.             ". Checked because it is the active choice.",
  1581.         /* [27] Right Arithmetic, Normal */
  1582.             "The shifter will shift right extending the sign bit while "
  1583.             "executing the currently selected microinstruction.",
  1584.         /* [28] Right Arithmetic, Checked */
  1585.             "The shifter will shift right extending the sign bit while "
  1586.             "executing the currently selected microinstruction. Checke"
  1587.             "d because it is the active choice.",
  1588.         /* [29] never, Normal */
  1589.             "The microprogram will never branch from the currently selec"
  1590.             "ted microinstruction.",
  1591.         /* [30] never, Checked */
  1592.             "The microprogram will never branch from the currently selec"
  1593.             "ted microinstruction. Checked because it is the active choic"
  1594.             "e.",
  1595.         /* [31] if n, Normal */
  1596.             "The microprogram will branch from the currently selected mi"
  1597.             "croinstruction if the number in the Arithmetic Logical Unit "
  1598.             "is negative.",
  1599.         /* [32] if n, Checked */
  1600.             "The microprogram will branch from the currently selected mi"
  1601.             "croinstruction if the number in the Arithmetic Logical Unit "
  1602.             "is negative. Checked because it is the active choice.",
  1603.         /* [33] if z, Normal */
  1604.             "The microprogram will branch from the currently selected mi"
  1605.             "croinstruction if the number in the Arithmetic Logical Unit "
  1606.             "is zero.",
  1607.         /* [34] if z, Checked */
  1608.             "The microprogram will branch from the currently selected mi"
  1609.             "croinstruction if the number in the Arithmetic Logical Unit "
  1610.             "is zero. Checked because it is the active choice.",
  1611.         /* [35] always, Normal */
  1612.             "The microprogram will always branch from the currently sele"
  1613.             "cted microinstruction.",
  1614.         /* [36] always, Checked */
  1615.             "The microprogram will always branch from the currently sele"
  1616.             "cted microinstruction. Checked because it is the active choi"
  1617.             "ce.",
  1618.         /* [37] Inactive, Normal */
  1619.             "The Arithmetic Logical Unit will stay inactive while execu"
  1620.             "ting the currently selected microinstruction.",
  1621.         /* [38] Inactive, Checked */
  1622.             "The Arithmetic Logical Unit will stay inactive while execu"
  1623.             "ting the currently selected microinstruction. Checked bec"
  1624.             "ause it is the active choice.",
  1625.         /* [39] +, Normal */
  1626.             "The Arithmetic Logical Unit will add the input values "
  1627.             "while executing the currently selected microinstruction.",
  1628.         /* [40] +, Checked */
  1629.             "The Arithmetic Logical Unit will add the input values "
  1630.             "while executing the currently selected microinstruction. "
  1631.             "Checked because it is the active choice.",
  1632.         /* [41] &, Normal */
  1633.             "The Arithmetic Logical Unit will do a logical AND of the input values while ex"
  1634.             "ecuting the currently selected microinstruction.",
  1635.         /* [42] &, Checked */
  1636.             "The Arithmetic Logical Unit will do a logical AND of the input values while ex"
  1637.             "ecuting the currently selected microinstruction. Checked "
  1638.             "because it is the active choice.",
  1639.         /* [43] ~, Normal */
  1640.             "The Arithmetic Logical Unit will do a one’s complement on t"
  1641.             "he left input value while executing the currently select"
  1642.             "ed microinstruction.",
  1643.         /* [44] ~, Checked */
  1644.             "The Arithmetic Logical Unit will do a one’s complement on t"
  1645.             "he left input value while executing the currently select"
  1646.             "ed microinstruction. Checked because it is the active choice"
  1647.             ".",
  1648.     }
  1649. };
  1650.  
  1651. resource 'STR#' (1002, purgeable) {    /* popup menus, part 2 */
  1652.     {
  1653.         /* [1] PC, Normal */
  1654.             "The Program Counter value will be sent on this bus.",
  1655.         /* [2] PC, Checked */
  1656.             "The Program Counter value will be sent on this bus. Checked"
  1657.             " because it is the active choice.",
  1658.         /* [3] AC, Normal */
  1659.             "The Accumulator value will be sent on this bus.",
  1660.         /* [4] AC, Checked */
  1661.             "The Accumulator value will be sent on this bus. Checked bec"
  1662.             "ause it is the active choice.",
  1663.         /* [5] SP, Normal */
  1664.             "The Stack Pointer value will be sent on this bus.",
  1665.         /* [6] SP, Checked */
  1666.             "The Stack Pointer value will be sent on this bus. Checked b"
  1667.             "ecause it is the active choice.",
  1668.         /* [7] BP, Normal */
  1669.             "The Base Pointer value will be sent on this bus.",
  1670.         /* [8] BP, Checked */
  1671.             "The Base Pointer value will be sent on this bus. Checked be"
  1672.             "cause it is the active choice.",
  1673.         /* [9] IR, Normal */
  1674.             "The Instruction Register value will be sent on this bus.",
  1675.         /* [10] IR, Checked */
  1676.             "The Instruction Register value will be sent on this bus. Ch"
  1677.             "ecked because it is the active choice.",
  1678.         /* [11] A, Normal */
  1679.             "The Register A value will be sent on this bus.",
  1680.         /* [12] A, Checked */
  1681.             "The Register A value will be sent on this bus. Checked beca"
  1682.             "use it is the active choice.",
  1683.         /* [13] B, Normal */
  1684.             "The Register B value will be sent on this bus.",
  1685.         /* [14] B, Checked */
  1686.             "The Register B value will be sent on this bus. Checked beca"
  1687.             "use it is the active choice.",
  1688.         /* [15] C, Normal */
  1689.             "The Register C value will be sent on this bus.",
  1690.         /* [16] C, Checked */
  1691.             "The Register C value will be sent on this bus. Checked beca"
  1692.             "use it is the active choice.",
  1693.         /* [17] D, Normal */
  1694.             "The Register D value will be sent on this bus.",
  1695.         /* [18] D, Checked */
  1696.             "The Register D value will be sent on this bus. Checked beca"
  1697.             "use it is the active choice.",
  1698.         /* [19] E, Normal */
  1699.             "The Register E value will be sent on this bus.",
  1700.         /* [20] E, Checked */
  1701.             "The Register E value will be sent on this bus. Checked beca"
  1702.             "use it is the active choice.",
  1703.         /* [21] X12, Normal */
  1704.             "The Register X12 value will be sent on this bus.",
  1705.         /* [22] X12, Checked */
  1706.             "The Register X12 value will be sent on this bus. Checked be"
  1707.             "cause it is the active choice.",
  1708.         /* [23] X11, Normal */
  1709.             "The Register X11 value will be sent on this bus.",
  1710.         /* [24] X11, Checked */
  1711.             "The Register X11 value will be sent on this bus. Checked be"
  1712.             "cause it is the active choice.",
  1713.         /* [25] Lo8, Normal */
  1714.             "The Register Lo8 value will be sent on this bus.",
  1715.         /* [26] Lo8, Checked */
  1716.             "The Register Lo8 value will be sent on this bus. Checked be"
  1717.             "cause it is the active choice.",
  1718.         /* [27] Zero, Normal */
  1719.             "The Register Zero value (0) will be sent on this bus.",
  1720.         /* [28] Zero, Checked */
  1721.             "The Register Zero value (0) will be sent on this bus. Checked b"
  1722.             "ecause it is the active choice.",
  1723.         /* [29] One, Normal */
  1724.             "The Register One value (1) will be sent on this bus.",
  1725.         /* [30] One, Checked */
  1726.             "The Register One value (1) will be sent on this bus. Checked be"
  1727.             "cause it is the active choice.",
  1728.         /* [31] MinusOne, Normal */
  1729.             "The Register MinusOne value (-1) will be sent on this bus.",
  1730.         /* [32] MinusOne, Checked */
  1731.             "The Register MinusOne value (-1) will be sent on this bus. Check"
  1732.             "ed because it is the active choice.",
  1733.     }
  1734. };
  1735.  
  1736. resource 'STR#' (1003, purgeable) {    /* Balloon Help String 4 */
  1737.     {
  1738.         /* [1] Disabled, Normal */
  1739.             "The value on this bus will not be saved in any register.",
  1740.         /* [2] Disabled, Checked */
  1741.             "The value on this bus will not be saved in any register. Ch"
  1742.             "ecked because it is the active choice.",
  1743.         /* [3] PC, Normal */
  1744.             "The Program Counter will be loaded from this bus.",
  1745.         /* [4] PC, Checked */
  1746.             "The Program Counter will be loaded from this bus. Checked b"
  1747.             "ecause it is the active choice.",
  1748.         /* [5] AC, Normal */
  1749.             "The Accumulator will be loaded from this bus.",
  1750.         /* [6] AC, Checked */
  1751.             "The Accumulator will be loaded from this bus. Checked becau"
  1752.             "se it is the active choice.",
  1753.         /* [7] SP, Normal */
  1754.             "The Stack Pointer will be loaded from this bus.",
  1755.         /* [8] SP, Checked */
  1756.             "The Stack Pointer will be loaded from this bus. Checked bec"
  1757.             "ause it is the active choice.",
  1758.         /* [9] BP, Normal */
  1759.             "The Base Register will be loaded from this bus.",
  1760.         /* [10] BP, Checked */
  1761.             "The Base Register will be loaded from this bus. Checked bec"
  1762.             "ause it is the active choice.",
  1763.         /* [11] IR, Normal */
  1764.             "The Instruction Register will be loaded from this bus.",
  1765.         /* [12] IR, Checked */
  1766.             "The Instruction Register will be loaded from this bus. Chec"
  1767.             "ked because it is the active choice.",
  1768.         /* [13] A, Normal */
  1769.             "The Register A will be loaded from this bus.",
  1770.         /* [14] A, Checked */
  1771.             "The Register A will be loaded from this bus. Checked becaus"
  1772.             "e it is the active choice.",
  1773.         /* [15] B, Normal */
  1774.             "The Register B will be loaded from this bus.",
  1775.         /* [16] B, Checked */
  1776.             "The Register B will be loaded from this bus. Checked becaus"
  1777.             "e it is the active choice.",
  1778.         /* [17] C, Normal */
  1779.             "The Register C will be loaded from this bus.",
  1780.         /* [18] C, Checked */
  1781.             "The Register C will be loaded from this bus. Checked becaus"
  1782.             "e it is the active choice.",
  1783.         /* [19] D, Normal */
  1784.             "The Register D will be loaded from this bus.",
  1785.         /* [20] D, Checked */
  1786.             "The Register D will be loaded from this bus. Checked becaus"
  1787.             "e it is the active choice.",
  1788.         /* [21] E, Normal */
  1789.             "The Register E will be loaded from this bus.",
  1790.         /* [22] E, Checked */
  1791.             "The Register E will be loaded from this bus. Checked becaus"
  1792.             "e it is the active choice.",
  1793.         /* [23] No, Normal */
  1794.             "The processor will not interact with the main memory while"
  1795.             " executing the currently selected microinstruction.",
  1796.         /* [24] No, Checked */
  1797.             "The processor will not interact with the main memory while"
  1798.             " executing the currently selected microinstruction. Check"
  1799.             "ed because it is the active choice.",
  1800.         /* [25] Read, Normal */
  1801.             "The processor will ask to read from the main memory while "
  1802.             "executing the currently selected microinstruction. "
  1803.             "You need to request a read for two consecutive microinstructions "
  1804.             "to actually get data from memory.",
  1805.         /* [26] Read, Checked */
  1806.             "The processor will ask to read from the main memory while "
  1807.             "executing the currently selected microinstruction. "
  1808.             "You need to request a read for two consecutive microinstructions "
  1809.             "to actually get data from memory. "
  1810.             "Checked because it is the active choice.",
  1811.         /* [27] Write, Normal */
  1812.             "The processor will ask to write to the main memory while e"
  1813.             "xecuting the currently selected microinstruction. "
  1814.             "You need to request a write for two consecutive microinstructions "
  1815.             "to actually write data into memory.",
  1816.         /* [28] Write, Checked */
  1817.             "The processor will ask to write to the main memory while e"
  1818.             "xecuting the currently selected microinstruction. "
  1819.             "You need to request a write for two consecutive microinstructions "
  1820.             "to actually write data into memory. "
  1821.             "Checked because it is the active choice.",
  1822.     }
  1823. };
  1824.  
  1825. resource 'STR#' (1004, purgeable) {    /* Menu bar */
  1826.     {
  1827.         /* [1] Menu Title, Checked */
  1828.             "This menu is not available because it cannot be used with the dialog box on your screen.",
  1829.         /* [2] Menu Title, Other */
  1830.             "This command is not available because you have to respond "
  1831.             "to the dialog box.",
  1832.         /* [3] About µSimulator…, Normal */
  1833.             "Tells you something about this application and its author.",
  1834.         /* [4] Menu Title, Normal */
  1835.             "File menu\n\nUse this menu to perform operations with doc"
  1836.             "uments, and to set your preferences for this application.",
  1837.         /* [5] New, Normal */
  1838.             "Starts afresh with a new microprogram.",
  1839.         /* [6] Open…, Normal */
  1840.             "Opens a previously saved microprogram document.",
  1841.         /* [7] Close Control Store, Normal */
  1842.             "Closes the microprogram document you are working at.",
  1843.         /* [8] Close Control Store, Grayed */
  1844.             "Closes the microprogram document you are working at. Not av"
  1845.             "ailable because no document is open.",
  1846.         /* [9] Save Control Store, Normal */
  1847.             "Saves the microprogram document.",
  1848.         /* [10] Save Control Store, Grayed */
  1849.             "Saves the microprogram document. Not available because no d"
  1850.             "ocument is open, or the working document has been already sa"
  1851.             "ved.",
  1852.         /* [11] Save Control Store As…, Normal */
  1853.             "Saves the microprogram into a new document.",
  1854.         /* [12] Save Control Store As…, Grayed */
  1855.             "Saves the microprogram into a new document. "
  1856.             "Not available because no document is open.",
  1857.         /* [13] Revert, Normal */
  1858.             "Reverts to the last saved version of this document.",
  1859.         /* [14] Revert to Saved, Grayed */
  1860.             "Reverts to the last saved version of this document. N"
  1861.             "ot available because you are not working on a previously saved "
  1862.             "document, or no document is open.",
  1863.         /* [15] Page Setup…, Grayed */
  1864.             "Displays a dialog box which allows you to set paper size, o"
  1865.             "rientation, and other printing options. Not available becaus"
  1866.             "e printing is not implemented.",
  1867.         /* [16] Print…, Grayed */
  1868.             "Not available because printing is not implemented.",
  1869.         /* [17] Preferences…, Normal */
  1870.             "Brings up a dialog that allows you to set your preferences "
  1871.             "for this application.",
  1872.         /* [18] Quit, Normal */
  1873.             "Quits this application.",
  1874.         /* [19] Save Control Store As Stationery…, Normal */
  1875.             "Saves the microprogram into a new stationery document.",
  1876.     }
  1877. };
  1878.  
  1879. resource 'STR#' (1005, purgeable) {    /* Menu bar, contd. */
  1880.     {
  1881.         /* [1] Menu Title, Normal */
  1882.             "Edit menu\$0D\$0DUse this menu to work with text and the micr"
  1883.             "oprogram.",
  1884.         /* [2] Undo, Normal */
  1885.             "Undoes the last operation.",
  1886.         /* [3] Undo, Grayed */
  1887.             "Undoes the last operation. Not available because not implemented.",
  1888.         /* [4] Cut, Normal */
  1889.             "Cuts the selection. The material you cut is removed and pla"
  1890.             "ced temporarily into a storage area called the Clipboard.",
  1891.         /* [5] Cut, Grayed */
  1892.             "Cuts the selection. The material you cut is removed and pla"
  1893.             "ced temporarily into a storage area called the Clipboard. No"
  1894.             "t available because nothing is selected.",
  1895.         /* [6] Copy, Normal */
  1896.             "Copies the selection. The material you copy is placed tempo"
  1897.             "rarily into a storage area called the Clipboard.",
  1898.         /* [7] Copy, Grayed */
  1899.             "Copies the selection. The material you copy is placed tempo"
  1900.             "rarily into a storage area called the Clipboard. Not availab"
  1901.             "le because nothing is selected.",
  1902.         /* [8] Paste, Normal */
  1903.             "Places the contents of the Clipboard at the location of the"
  1904.             " insertion point (or in place of the current selection).",
  1905.         /* [9] Paste, Grayed */
  1906.             "Places the contents of the Clipboard at the location of the"
  1907.             " insertion point (or in place of the current selection). Not"
  1908.             " available because there is nothing on the Clipboard, or bec"
  1909.             "ause the insertion point is not in a location where pasting "
  1910.             "is possible.",
  1911.         /* [10] Clear, Normal */
  1912.             "Removes the selection without storing it on the Clipboard.",
  1913.         /* [11] Clear, Grayed */
  1914.             "Removes the selection without storing it on the Clipboard. "
  1915.             "Not available because nothing is selected.",
  1916.         /* [12] Select All, Normal */
  1917.             "Selects all the text you are editing.",
  1918.         /* [13] Select All, Grayed */
  1919.             "Selects all the text you are editing. Not available because"
  1920.             " no text is being edited.",
  1921.         /* [14] Insert Line, Normal */
  1922.             "Inserts an empty microinstruction before the selected one.",
  1923.         /* [15] Insert Line, Grayed */
  1924.             "Inserts an empty microinstruction before the selected one. "
  1925.             "Not available because the microinstruction list is not activ"
  1926.             "e, or because you can achieve the same effect by choosing Cl"
  1927.             "ear from this menu.",
  1928.         /* [16] Delete Line, Normal */
  1929.             "Deletes the selected microinstruction and moves up the foll"
  1930.             "owing to fill the empty space.",
  1931.         /* [17] Delete Line, Grayed */
  1932.             "Deletes the selected microinstruction and moves up the foll"
  1933.             "owing to fill the empty space. Not available because the mic"
  1934.             "roinstruction list is not active, or because you can achieve"
  1935.             " the same effect by choosing Clear from this menu.",
  1936.     }
  1937. };
  1938.  
  1939. resource 'STR#' (1006, purgeable) {    /* menu bar, contd. */
  1940.     {
  1941.         /* [1] Menu Title, Normal */
  1942.             "Windows menu\$0D\$0DUse this menu to show or select windows.\$0D"
  1943.             "(nothing to do with Microsloth Windows)\$0D",
  1944.         /* [2] Animation, Normal */
  1945.             "Shows up the Animation window.",
  1946.         /* [3] Animation, Checked */
  1947.             "Brings to front the Animation window. Checked because the w"
  1948.             "indow is visible.",
  1949.         /* [4] Registers, Normal */
  1950.             "Shows up the Registers window.",
  1951.         /* [5] Registers, Checked */
  1952.             "Brings to front the Registers window. Checked because the w"
  1953.             "indow is visible.",
  1954.         /* [6] Input/Output, Normal */
  1955.             "Shows up the Input/Output window.",
  1956.         /* [7] Input/Output, Checked */
  1957.             "Brings to front the Input/Output window. Checked because th"
  1958.             "e window is visible.",
  1959.         /* [8] Microprogram, Normal */
  1960.             "Shows up the Microprogram document window.",
  1961.         /* [9] Microprogram, Grayed */
  1962.             "Shows up the Microprogram document window. Not available be"
  1963.             "cause no document is open.",
  1964.         /* [10] Microprogram, Checked */
  1965.             "Brings to front the Microprogram document window. Checked b"
  1966.             "ecause the window is visible.",
  1967.         /* [11] Disassembler, Normal */
  1968.             "Shows up the Disassembler window.",
  1969.         /* [12] Disassembler, Checked */
  1970.             "Brings to front the Disassembler window. Checked because the window"
  1971.             " is visible.",
  1972.         /* [13] Dump, Normal */
  1973.             "Shows up the Dump window.",
  1974.         /* [14] Dump, Checked */
  1975.             "Brings to front the Dump window. Checked because th"
  1976.             "e window is visible.",
  1977.     }
  1978. };
  1979.  
  1980. resource 'STR#' (1007, purgeable) {    /* menu bar, contd. */
  1981.     {
  1982.         /* [1] Menu Title, Normal */
  1983.             "Control menu\$0D\$0DUse this menu to control the processor ex"
  1984.             "ecution or to reset the memory and registers to their standard states.",
  1985.         /* [2] Go, Normal */
  1986.             "Starts the execution.",
  1987.         /* [3] Go, Grayed */
  1988.             "Starts the execution. Not available because the processor i"
  1989.             "s already executing instructions, or because no microprogram "
  1990.             "document is currently open.",
  1991.         /* [4] Stop, Normal */
  1992.             "Stops the execution of instructions.",
  1993.         /* [5] Stop, Grayed */
  1994.             "Stops the execution of instructions. Not available because "
  1995.             "the processor is not executing instructions, or because no "
  1996.             "microprogram document is currently open.",
  1997.         /* [6] Step, Grayed */
  1998.             "Not available because the processor is executing instructions.",
  1999.         /* [7] Step sub, Normal */
  2000.             "Carries on the execution of one clock subcycle. Each microinstruction executes in four "
  2001.             "clock subcycles.",
  2002.         /* [8] Step micro, Normal */
  2003.             "Carries on the execution of one microinstruction. Each conventional instruction "
  2004.             "is composed by four (or more) microinstructions, two for fetching it from the main "
  2005.             "memory, one for hardware decoding, and one (or more) for the actual execution.",
  2006.         /* [9] Step asm, Normal */
  2007.             "Carries on the execution of one conventional instruction.",
  2008.         /* [10] Reset Memory, Normal */
  2009.             "Resets the main memory to its initial state (for the most part it wi"
  2010.             "ll be zeroed out).",
  2011.         /* [11] Reset Memory, Grayed */
  2012.             "Resets the main memory to its initial state (for the most part it wi"
  2013.             "ll be zeroed out). Not available because resetting memory wh"
  2014.             "ile the processor is executing instructions is somewhat dang"
  2015.             "erous.",
  2016.         /* [12] Reset Registers, Normal */
  2017.             "Resets the Program Counter and the Stack Pointer to their "
  2018.             "standard initial values. You can modify the standard values in "
  2019.             "the preferences dialog.",
  2020.         /* [13] Reset Registers, Grayed */
  2021.             "Resets the Program Counter and the Stack Pointer to their "
  2022.             "standard initial values. Not available because modifying the r"
  2023.             "egisters while the processor is executing instructions is so"
  2024.             "mewhat dangerous.",
  2025.         /* [14] Disasm, Grayed */
  2026.             "Scrolls the Disassembler window in order to bring in view a certain "
  2027.             "part of memory. Not available because the window is not visible.",
  2028.         /* [15] Dump, Grayed */
  2029.             "Scrolls the Dump window in order to bring in view a certain "
  2030.             "part of memory. Not available because the window is not visible.",
  2031.         /* [16] Select MPC, Normal */
  2032.             "Selects the microprogram instruction pointed to by the MPC.",
  2033.         /* [17] Select MPC, Grayed */
  2034.             "Selects the microprogram instruction pointed to by the MPC. "
  2035.             "Not available because no microprogram document is currently open.",
  2036.     }
  2037. };
  2038.  
  2039. resource 'STR#' (1008, purgeable) {    /* menu bar, contd. */
  2040.     {
  2041.         /* [1] Menu Title, Normal */
  2042.             "Assembler menu\$0D\$0DUse this menu to assemble a text source t"
  2043.             "o the main memory.",
  2044.         /* [2] Assemble…, Normal */
  2045.             "Lets you choose a text source to assemble in the main memory.",
  2046.         /* [3] Preferences…, Normal */
  2047.             "Brings up a dialog which allows you to enter a main memo"
  2048.             "ry location. The assembler will output conventional instructions from "
  2049.             "that memory location.",
  2050.     }
  2051. };
  2052.  
  2053. resource 'STR#' (1009, purgeable) {    /* dialogs */
  2054.     {
  2055.         /* [1] OK, Normal */
  2056.             "To accept assembling from this memory location, click here.",
  2057.         /* [2] Cancel, Normal */
  2058.             "To cancel changes you have made, click here.",
  2059.         /* [3] DITL 134, Normal */
  2060.             "The assembler will output conventional instructions starting from this "
  2061.             "main memory location.",
  2062.         /* [4] OK, Normal */
  2063.             "To accept changes you have made to this value, click here.",
  2064.         /* [5] Cancel, Normal */
  2065.             "To cancel changes you have made to this value, click here.",
  2066.         /* [6] DITL 256, Normal */
  2067.             "Here you can modify the value.",
  2068.         /* [7] Base:, Normal */
  2069.             "Use this pop-up menu to display the number in different forms.",
  2070.         /* [8] OK, Normal */
  2071.             "To accept changes you have made to the current preferences,"
  2072.             " click here.",
  2073.         /* [9] Cancel, Normal */
  2074.             "To cancel changes you have made to the current preferences,"
  2075.             " click here.",
  2076.         /* [10] Remember Window Positions , Normal */
  2077.             "To remember window positions between sessions, click here.",
  2078.         /* [11] Remember Window Positions , Checked */
  2079.             "To leave windows in their standard position between sessions"
  2080.             ", click here.",
  2081.         /* [12] Continuous Dump scrolling, Normal */
  2082.             "To watch the memory contents while moving the scroll box of the D"
  2083.             "ump window, click here.",
  2084.         /* [13] Continuous Dump scrolling, Checked */
  2085.             "To scroll the Dump window in the usual way, click here.",
  2086.         /* [14] detect ∞ loops, Normal */
  2087.             "To detect ∞ loops in the microprogram, click here. The processor is "
  2088.             "expected to execute periodically the first few instructions in the "
  2089.             "microprogram in order to fetch instructions from memory.",
  2090.         /* [15] detect ∞ loops, Checked */
  2091.             "To execute ∞ loops in the microprogram, click here.",
  2092.         /* [16] text, PC value */
  2093.             "Enter the value you want to store into the "
  2094.             "Program Counter when this application starts up, and when you "
  2095.             "choose Reset Registers from the Control Menu.",
  2096.         /* [17] text, SP value */
  2097.             "Enter the value you want to store into the "
  2098.             "Stack Pointer when this application starts up, and when you "
  2099.             "choose Reset Registers from the Control Menu. This is usually "
  2100.             "called the stack base.",
  2101.         /* [18] text, Stack size */
  2102.             "Enter the stack size of the simulated computer. This sets up "
  2103.             "a limit for it; when the Stack Pointer goes beyond this limit "
  2104.             "a stack overflow error occurs. The limit is obviously (stack base - "
  2105.             "stack size), because the stack grows downwards in memory.",
  2106.     }
  2107. };
  2108.  
  2109. resource 'STR#' (1010, purgeable) {    /* Animation Window Balloons */
  2110.     {
  2111.         /* [1] A Latch */
  2112.             "To modify the value stored in the A latch, click here.\nThe register addressed by the "
  2113.             "“A” field in the Micro Instruction Register feeds the A bus, which in turn feeds "
  2114.             "the A latch.",
  2115.         /* [2] B Latch */
  2116.             "To modify the value stored in the B latch, click here.\nThe register addressed by the "
  2117.             "“B” field in the Micro Instruction Register feeds the B bus, which in turn feeds "
  2118.             "the B latch.",
  2119.         /* [3] MAR */
  2120.             "To modify the value stored in the Memory Address Register, click here.\nWhen this "
  2121.             "register is active, the B latch feeds it. When the processor needs to read from or write to "
  2122.             "a main memory address, it puts the memory address here.",
  2123.         /* [4] MBR */
  2124.             "To modify the value stored in the Memory Buffer Register, click here.\nWhen this "
  2125.             "register is active, the Shifter feeds it. Here the processor keeps values read from and "
  2126.             "to be written to the main memory.",
  2127.         /* [5] AMUX */
  2128.             "To modify the value stored in the A multiplexer, click here.\nThis multiplexer controls the "
  2129.             "left input to the Arithmetic Logical Unit. It chooses between the A latch and the Memory "
  2130.             "Buffer Register.",
  2131.         /* [6] Shifter */
  2132.             "To modify the value stored in the Shifter, click here.\nThe Arithmetic Logical Unit feeds the "
  2133.             "shifter with its result. If the C bus is not disabled, its contents go to the Registers scratchpad.",
  2134.         /* [7] Incrementer */
  2135.             "To modify the value stored in the Incrementer, click here.\nThe incrementer provides the standard "
  2136.             "advancing of the Micro Program Counter.",
  2137.         /* [8] MMUX */
  2138.             "To modify the value stored in the M multiplexer, click here.\nThis multiplexer controls the input to "
  2139.             "the Micro Program Counter. A jump in the microprogram results in feeding the Micro Program Counter "
  2140.             "with the “Addr” field of the Micro Instruction Register.",
  2141.         /* [9] MPC */
  2142.             "To modify the value stored in the Micro Program Counter, click here.\nThis register points to the "
  2143.             "microinstruction currently executing.",
  2144.         /* [10] ALU */
  2145.             "To modify the value stored in the Arithmetic Logical Unit, click here.\nThis unit performs the basic "
  2146.             "calculations (add, logical and, one’s complement) and sets the Negative and Zero flags, "
  2147.             "according to its contents.",
  2148.         /* [11] MSL */
  2149.             "The Micro Sequencing Logic decides whether to take a jump (in the microprogram) or not. The decision "
  2150.             "is based upon the Negative and Zero flags, and the “Cond” field of the Micro Instruction Register.",
  2151.         /* [12] MIR */
  2152.             "The Micro Instruction Register contains the last microinstruction extracted from "
  2153.             "the Control Store. Its fields control many parts of the processor.",
  2154.         /* [13] Registers */
  2155.             "To show the Register window, click here.\nThe registers are a scratchpad memory; the processor can "
  2156.             "access their data very quickly. While the processor is running, the (writable) registers can be "
  2157.             "set via the C bus, which may carry the shifter output.",
  2158.         /* [14] Control Store */
  2159.             "To show the Microprogram window, click here; you cannot show the window if no document "
  2160.             "is open.\nThe Control Store contains the entire "
  2161.             "microprogram, which endlessly fetches, decodes and executes "
  2162.             "instructions from the main memory.",
  2163.         /* [15] Map */
  2164.             "This is the hardware decoding unit. When activated, this unit decodes the "
  2165.             "conventional instruction in the Instruction Register, setting the "
  2166.             "Micro Program Counter; it writes to the X12, X11, Lo8 registers simultaneously."
  2167.     }
  2168. };
  2169.  
  2170. resource 'STR#' (1011, purgeable) {    /* Registers Window Balloons */
  2171.     {
  2172.         /* [1] Base pop-up */
  2173.             "Use this pop-up menu to display the registers’ contents in different forms.",
  2174.         /* [2] PC */
  2175.             "To modify the value stored in the Program Counter, click here.\nThis register is used to "
  2176.             "indicate the conventional instruction which must be executed. Conventional instructions are "
  2177.             "shown in the Disassembler window.",
  2178.         /* [3] AC */
  2179.             "To modify the value stored in the Accumulator, click here.\nIn the sample "
  2180.             "supplied with this application, this register is heavily used. It may not be so with other "
  2181.             "macroarchitectures.",
  2182.         /* [4] SP */
  2183.             "To modify the value stored in the Stack Pointer, click here.\nThis register normally points to a "
  2184.             "memory structure called a stack. The stack is simply a Last In, First Out queue "
  2185.             "(the last element inserted is the first removed).",
  2186.         /* [5] BP */
  2187.             "To modify the value stored in the Base Pointer, click here.\nThis register is used to make "
  2188.             "the management of local variables and actual parameters of functions easier.",
  2189.         /* [6] IR */
  2190.             "To modify the value stored in the Instruction Register, click here.\nThis register is "
  2191.             "used to hold the conventional instruction fetched from the main memory.",
  2192.         /* [7] A */
  2193.             "To modify the value stored in the A register, click here.\nThis is a scratch register, "
  2194.             "the only one used in the sample supplied with this application.",
  2195.         /* [8] B */
  2196.             "To modify the value stored in the B register, click here.\nThis is a scratch register.",
  2197.         /* [9] C */
  2198.             "To modify the value stored in the C register, click here.\nThis is a scratch register.",
  2199.         /* [10] D */
  2200.             "To modify the value stored in the D register, click here.\nThis is a scratch register.",
  2201.         /* [11] E */
  2202.             "To modify the value stored in the E register, click here.\nThis is a scratch register.",
  2203.         /* [12] X12 */
  2204.             "To modify the value stored in the X12 register, click here.\nThis register is set by the "
  2205.             "hardware decoding unit to the lower 12 bits of the Instruction Register, with sign extension.",
  2206.         /* [13] X11 */
  2207.             "To modify the value stored in the X11 register, click here.\nThis register is set by the "
  2208.             "hardware decoding unit to the lower 11 bits of the Instruction Register, with sign extension.",
  2209.         /* [14] Lo8 */
  2210.             "To modify the value stored in the Lo8 register, click here.\nThis register is set by the "
  2211.             "hardware decoding unit to the lower 8 bits of the Instruction Register."
  2212.     }
  2213. };
  2214.  
  2215. resource 'STR#' (1012, purgeable) {    /* Microprogram Window Balloons */
  2216.     {
  2217.         /* [1] A bus */
  2218.             "Use this pop-up menu to send on the A bus (left input to the Arithmetic "
  2219.             "Logical Unit) the value stored in a register.",
  2220.         /* [2] B bus */
  2221.             "Use this pop-up menu to send on the B bus (right input to the Arithmetic "
  2222.             "Logical Unit) the value stored in a register.",
  2223.         /* [3] C bus */
  2224.             "Use this pop-up menu to overwrite a register with the shifter output.",
  2225.         /* [4] MAR */
  2226.             "To put the B latch contents into the Memory Address Register, check this button.",
  2227.         /* [5] MBR */
  2228.             "To put the shifter output into the Memory Buffer Register, check this button.",
  2229.         /* [6] Bus request */
  2230.             "Use this pop-up menu to request memory reads or writes.",
  2231.         /* [7] Shifter */
  2232.             "Use this pop-up menu to control the shifter behavior.",
  2233.         /* [8] Branch */
  2234.             "Use this pop-up menu to choose on which condition the selected microinstruction should take a jump.",
  2235.         /* [9] ALU */
  2236.             "Use this pop-up menu to control the Arithmetic Logical Unit behavior.",
  2237.         /* [10] A bus */
  2238.             "To send the value arriving from the A latch to the Arithmetic Logical Unit, click here.",
  2239.         /* [11] MBR */
  2240.             "To send the value arriving from the Memory Buffer Register to the Arithmetic Logical Unit, click here.",
  2241.         /* [12] hardware decoding */
  2242.             "To activate the hardware decoding unit (labeled MAP in the Animation window), check this button.",
  2243.         /* [13] to… */
  2244.             "Enter the destination microinstruction line number.\n\n"
  2245.             "Tip: to enter the line number automatically, "
  2246.             "click on the destination "
  2247.             "microinstruction (in the descriptions list) holding down the command key.",
  2248.         /* [14] comment */
  2249.             "Enter a description of the current microinstruction. The description will appear in the "
  2250.             "adjacent list.",
  2251.         /* [15] comment list */
  2252.             "This is a list of the descriptions entered for each microinstruction. "
  2253.             "To select a branch destination line, select a line "
  2254.             "containing a branch and double-click on it.",
  2255.         /* [16] conventional instruction list */
  2256.             "This is a list of the conventional instructions of this processor. "
  2257.             "To select the starting line of a conventional instruction in the descriptions list, "
  2258.             "click on it. To change the starting line, click and "
  2259.             "drag to the description list."
  2260.     }
  2261. };
  2262.  
  2263. resource 'STR#' (1013, purgeable) {    /* Dump, Disasm, IO Window Balloons */
  2264.     {
  2265.         /* [1] Dump area */
  2266.             "This window represents the main memory contents. To modify a memory "
  2267.             "location, click on its value.\n\n"
  2268.             "Tip: to dump or disassemble starting from an address in a "
  2269.             "location, click on it holding down respectively the command or option key.",
  2270.         /* [2] Disasm area */
  2271.             "This window represents the disassembled main memory contents.",
  2272.         /* [3] IO area */
  2273.             "This window is the interface with the simulated computer."
  2274.     }
  2275. };
  2276.  
  2277. resource 'vers' (1, purgeable) {
  2278.     0x1,
  2279.     0x10,
  2280.     release,
  2281.     0,
  2282.     verUS,
  2283.     "1.1",
  2284.     "1.1 ©1993-1997 Fabrizio Oddone"
  2285. };
  2286.  
  2287. resource 'STR ' (kSTR_WWWURLTHISPROGRAM, purgeable) {
  2288.     "http://www.kagi.com/authors/fab/msim.html"
  2289. };
  2290.  
  2291.